package cn.daixiaodong.myapp.activity.common; import android.animation.ObjectAnimator; import android.os.Build; import android.os.Bundle; import android.support.design.widget.AppBarLayout; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.animation.DecelerateInterpolator; /** * Created by daixiaodong on 15/7/14. */ public abstract class ToolbarActivity extends AppCompatActivity { private AppBarLayout mAppBarLayout; private Toolbar mToolbar; private boolean isHidden; protected abstract int getLayoutResId(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutResId()); initViews(); if (mAppBarLayout == null || mToolbar == null) { throw new NullPointerException("no AppBarLayout or Toolbar"); } mToolbar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onToolbarClick(); } }); setSupportActionBar(mToolbar); if (Build.VERSION.SDK_INT >= 21) { mAppBarLayout.setElevation(10.6f); } } protected void onToolbarClick() { } private void initViews() { // mAppBarLayout = (AppBarLayout) findViewById(R.id.id_app_bar_layout); // mToolbar = (Toolbar) findViewById(R.id.id_toolbar); } protected void setAppBarAlpha(float alpha) { mAppBarLayout.setAlpha(alpha); } protected void hideOrShowToolbar() { if (isHidden) { /* ObjectAnimator.ofFloat(mAppBarLayout, "translationY", -mAppBarLayout.getHeight(), 0) .start();*/ mAppBarLayout.animate() .translationY(0) .setInterpolator(new DecelerateInterpolator(2)) .start(); } else { ObjectAnimator.ofFloat(mAppBarLayout, "translationY", 0, -mAppBarLayout.getHeight()) .start(); } isHidden = !isHidden; } }